SyntaxError: ungültiger Bereich in Zeichenklasse
Der JavaScript-Fehler "ungültiger Bereich in Zeichenklasse" tritt auf, wenn eine Zeichenklasse in einem regulären Ausdruck einen Bereich verwendet, bei dem der Start des Bereichs größer als das Ende ist.
Meldung
SyntaxError: Invalid regular expression: /[2-1]/: Range out of order in character class (V8-based) SyntaxError: invalid range in character class (Firefox) SyntaxError: Invalid regular expression: range out of order in character class (Safari)
Fehlertyp
Was ist schiefgelaufen?
In Zeichenklassen können Sie zwei Zeichen mit einem Bindestrich -
verbinden, um ein inklusives Intervall von Zeichen basierend auf ihren Unicode-Codepunkten darzustellen. Zum Beispiel, [a-z]
entspricht jedem Kleinbuchstaben. Wenn jedoch das Ende des Bereichs kleiner als der Start ist, kann der Bereich nichts entsprechen und ist wahrscheinlich ein Fehler.
Beispiele
Ungültige Fälle
js
/[9-1]/; // The range is out of order
/[_-=]/; // _ has value 95, = has value 61
Gültige Fälle
js
/[1-9]/; // Swap the range
/[_\-=]/; // Escape the hyphen so it matches the literal character